home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS077A.dsk / BASE CONVERT.bas < prev    next >
BASIC Source File  |  2012-02-16  |  2KB  |  89 lines

  1. 5  HOME 
  2. 10  PRINT "             BASE CONVERSION "
  3. 20  PRINT : PRINT 
  4. 30  PRINT "MODES:    1 - HEX > DECIMAL"
  5. 40  PRINT "          2 - DECIMAL > HEX"
  6. 42  PRINT "          3 - OCTAL > DECIMAL"
  7. 45  PRINT "          4 - DECIMAL > OCTAL"
  8. 50  PRINT : PRINT "WHICH MODE";
  9. 60  INPUT M
  10. 65  IF M < >1  AND M < >2  AND M < >3  AND M < >4  THEN 50
  11. 70  ON M GOSUB 1000,2000,3000,4000
  12. 80  PRINT "MORE DATA (Y/N) -- ";
  13. 90  GET A$
  14. 100  IF A$ < >"Y"  THEN 9999
  15. 110  HOME : GOTO 30
  16. 1000  HOME 
  17. 1010  PRINT "ENTER HEX--";: INPUT H$
  18. 1020 L =  LEN(H$)
  19. 1030 S = 0
  20. 1040  FOR J = 1 TO L
  21. 1050 B$ =  MID$ (H$,J,1)
  22. 1060  IF B$ < >"A"  THEN 1080
  23. 1070 N = 10: GOTO 1190
  24. 1080  IF B$ < >"B"  THEN 1100
  25. 1090 N = 11: GOTO 1190
  26. 1100  IF B$ < >"C"  THEN 1120
  27. 1110 N = 12: GOTO 1190
  28. 1120  IF B$ < >"D"  THEN 1140
  29. 1130 N = 13: GOTO 1190
  30. 1140  IF B$ < >"E"  THEN 1160
  31. 1150 N = 14: GOTO 1190
  32. 1160  IF B$ < >"F"  THEN 1180
  33. 1170 N = 15: GOTO 1190
  34. 1180 N =  VAL( MID$ (H$,J,1))
  35. 1190 S = S +N *16 ^(L -J)
  36. 1200  NEXT J
  37. 1210  PRINT : PRINT "DECIMAL = ";S
  38. 1220  PRINT : RETURN 
  39. 2000  HOME 
  40. 2010  PRINT "ENTER DECIMAL ";: INPUT D
  41. 2020 D$ =  STR$(D)
  42. 2030 L =  LEN(D$)
  43. 2040 S$ = " "
  44. 2050  FOR J = 1 TO L
  45. 2060 Q =  INT(D/16)
  46. 2070 R = 16 *(D/16 - INT(D/16))
  47. 2080  IF R < >10  THEN 2100
  48. 2090 R$ = "A": GOTO 2210
  49. 2100  IF R < >11  THEN 2120
  50. 2110 R$ = "B": GOTO 2210
  51. 2120  IF R < >12  THEN 2140
  52. 2130 R$ = "C": GOTO 2210
  53. 2140  IF R < >13  THEN 2160
  54. 2150 R$ = "D": GOTO 2210
  55. 2160  IF R < >14  THEN 2180
  56. 2170 R$ = "E": GOTO 2210
  57. 2180  IF R < >15  THEN 2200
  58. 2190 R$ = "F": GOTO 2210
  59. 2200 R$ =  STR$(R)
  60. 2210 S$ = R$ +S$
  61. 2215 D = Q
  62. 2220  NEXT J
  63. 2230  PRINT : PRINT "HEX = ";S$
  64. 2240  PRINT : RETURN 
  65. 3000  HOME 
  66. 3010  PRINT "ENTER OCTAL";: INPUT O
  67. 3020 O$ =  STR$(O)
  68. 3030 L =  LEN(O$)
  69. 3040 S = 0
  70. 3050  FOR J = L -1 TO 0  STEP  -1
  71. 3060 N =  INT(O/10 ^J +.5)
  72. 3070 S = S +N *8 ^J
  73. 3080 O = O -N *10 ^J
  74. 3090  NEXT J
  75. 3100  PRINT : PRINT "DECIMAL = ";S
  76. 3110  PRINT : RETURN 
  77. 4000  HOME 
  78. 4010  PRINT "ENTER DECIMAL";: INPUT D
  79. 4020 D$ =  STR$(D)
  80. 4030 L =  LEN(D$)
  81. 4040 S = 0
  82. 4050  FOR J = L -1 TO 0  STEP  -1
  83. 4060 N =  INT(D/8 ^J +.5)
  84. 4070 S = S +N *10 ^J
  85. 4080 D = D -N *8 ^J
  86. 4090  NEXT J
  87. 4100  PRINT : PRINT "OCTAL = ";S
  88. 4110  PRINT : RETURN 
  89. 9999  END